<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         * 字符限定:
         * ?  0-1
         * *  0-n
         * +  1-n
         * {n}  n次
         * {n,}  至少n次
         * {n,m}  n-m
         * ^  开头
         * $  结尾
         **/
        /**
         * 小括号的作用:
         * 分组
         * 改变作用域的范围
         * 捕获,把子表达式匹配到内容保存到系统缓冲区
         * 与非捕获
         **/
        var reg01=/^13[689]\d{8}$/
        var res="1234".match(/(\d)(\d)(\d)/);
        console.log(res);
        
        //字符串替换函数
        var str2="Regular Capture";
        var reg02=/(\w+)\s(\w+)/gi;
        console.log(str2.match(reg02));
        var str3=str2.replace(reg02,'$2 $1');
        console.log(str3);
        /**
         * 非捕获,不会把子表达式的内容保存到系统缓冲区,$1  $2不起作用
         * ?:x对x不进行捕获
         **/
        var reg03=/(?:J)(?:S)/
        console.log(
            'JS'.replace(reg03,'$2 $1')
        );
        var reg04=/(J)(S)/
        console.log(
            'JS'.replace(reg04,'$2 $1')
        );
        /**
         * 零宽断言,用于查找是否存在某种字符
         * ?=
         **/
        //密码必须包含大写、小写、与数字.
        var passwordReg=/(?=.*[A-Z]+)(?=.*[a-z]+)(?=.*[0-9]+)[a-zA-Z0-9]{8,20}/;
        console.log(
            passwordReg.test("asdsaASD123")
        );
        function checkPassword(str){
            
        }
        //邮箱验证
        function validateEmail($email){
            return preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/',$email);
        }
    </script>
</body>
</html>